It has become common for people to use computer networks to communicate in a variety of ways. From electronic mail, instant messaging and multimedia documents to interactive audio, video and virtual realities, each type of communication is somewhat dependent on underlying communication links that join individual computers into a network. Types of communication requiring high bandwidth, low latency communication links are typically more dependent on link quality than less demanding communication types.
There has further come to be a wide variety of types of communication link, wired and wireless, each with its benefits and drawbacks. Of course, communication scheme designers would like to maximize benefits and minimize drawbacks. However, this can be a challenge, particularly where a communication link operates in a context of a complex and/or rapidly changing communication environment. Such communication environments are characteristic for wireless communication links to mobile computing devices, and this type of communication link will serve as the main source of examples in this description.
Modern communication schemes, and particularly wireless communication schemes, typically incorporate multiple data encodings to cope with a multiplicity of communication environments. For example, one set of data encodings may provide high data rates when received signal strength and/or the signal to noise ratio is high, while another set may provide a reliable but lower data rate in a poorer communication environment. Although not limited to optimization of data rate, throughput is significant for a wide variety of communication types, and the problem of selecting good and/or best data encodings for a complex and changing communication environment is referred to herein as the rate adaptation problem.
Conventional approaches to the rate adaptation problem have significant failings. Some approaches have satisfactory theoretical performance but are unsatisfactory in practice. A common failing in these approaches is to assume a level of information about a communication link and/or channel that is difficult to obtain in practical (e.g., economically viable) devices and/or that requires additional protocol overhead. In particular, it is typically impractical for a transmitter to obtain high quality signal to noise ratio (SNR) and/or received signal strength indication (RSSI) information for its receivers, even with additional protocol overhead, due at least to rapid fluctuations in such SNR and/or RSSI values in practical communication environments. In some cases, the quality of available information is deliberately lowered (e.g., smoothed and/or oversmoothed) from the perspective of the rate adaptation problem. In some approaches, practical issues such as mobile nodes and the hidden node problem (i.e., nodes located so as to be unable to coordinate access to a common wireless hub or access point) significantly reduce rate adaptation effectiveness.
Some conventional approaches to the rate adaptation problem simply reduce or increase data rate based on observed packet loss. Again, while such a “black-box” approach may have satisfactory results in theory or, for example, in a simple communication environment, in complex practical communication environments blind rate adjustment can result in throughput fluctuations that degrade user experience. Some conventional black-box approaches collect long term statistics in an attempt to ameliorate such fluctuations, but these typically fail to prevent jarring short-term link quality fluctuations in rapidly changing (e.g., mobile) communication environments.